package com.erp.gather.service;

import com.erp.gather.domain.bo.ErpSellerStoreCommodityRankStatisticsBo;
import com.erp.gather.domain.vo.ErpSellerStoreCommodityRankStatisticsVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.web.oldPage.TableDataInfo;
import com.ruoyi.gather.api.domain.dto.EvaluationProductDto;
import com.ruoyi.gather.api.domain.dto.ProductInfoModuleDto;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

/**
 * 店铺商品排行记录Service接口
 *
 * @author erp
 * @date 2024-01-03
 */
public interface IErpSellerStoreCommodityRankStatisticsService {

    /**
     * 查询店铺商品排行记录
     */
    ErpSellerStoreCommodityRankStatisticsVo queryById(Long id);

    /**
     * 查询店铺商品排行记录列表
     */
    TableDataInfo<ErpSellerStoreCommodityRankStatisticsVo> queryPageList(ErpSellerStoreCommodityRankStatisticsBo bo, PageQuery pageQuery);

    /**
     * 查询店铺商品排行记录列表
     */
    List<ErpSellerStoreCommodityRankStatisticsVo> queryList(ErpSellerStoreCommodityRankStatisticsBo bo);

    /**
     * 新增店铺商品排行记录
     */
    Boolean insertByBo(ErpSellerStoreCommodityRankStatisticsBo bo);

    /**
     * 修改店铺商品排行记录
     */
    Boolean updateByBo(ErpSellerStoreCommodityRankStatisticsBo bo);

    /**
     * 校验并批量删除店铺商品排行记录信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<ProductInfoModuleDto> getProductRankByStoreId(String outOrder, Integer productSource, Long storeId, Integer limit);

    List<Long> getProductsRankByPrimary(Long productId, Integer productSource, Integer productOut);

    List<EvaluationProductDto> getEvaluationProduct(Long storeId, List<String> list, String maxBig,String minBig);

    /**
     * 查询周期内的访客量
     * @param aeProductId
     * @param statisticalPeriod
     * @return
     */
    Integer selectVisitorsTotalsByTime(Long aeProductId, Integer statisticalPeriod);

    Boolean isOutOrder(Long productId);
}
